
        <html>
			<head>
			     <title>云、管、端三重失守，大范围挂马攻击分析 - 腾讯电脑管家</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/13755">http://drops.wooyun.org/papers/13755</a></h1>
				
      <p>
        <h1>0x00 源起</h1>

<hr />

<p>从3月5日开始，腾讯反病毒实验室监控到大量知名软件客户端存在释放下载器病毒的异常数据，预示着可能存在通过挂马方式大规模攻击知名软件客户端的行为。电脑管家紧急对相关数据进行分析排查，最终发现这是一起综合利用运营商监控缺失、网络广告商审核不严、客户端软件存在安全漏洞等多重因素进行的大规模网络攻击，其攻击方式就多达3种（参见下图）。</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512450136250129.png" alt="" /></p>

<!--more-->

<h1>0x01 分析过程</h1>

<hr />

<h2>1. 攻击方式一（某运营商客户端）：商业广告挂马</h2>

<p>从数据中找到线索，其中较大的一个推广渠道竟然是某运营商客户端的speedup模块。管家工程师陷入了思考: 新的0day漏洞被利用？局部地区运营商劫持？</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512450334218220.png" alt="" /></p>

<p>通过分析部分用户IP，发现确实均为某运营商用户，并且用户分布较广，却不是聚集在局部地区。</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512450470142320.png" alt="" /></p>

<p>管家开始模拟环境安装此软件，安装后软件正常拉起speedup模块。</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512451848071410.png" alt="" /></p>

<p>speedup.exe程序内嵌了ie控件，但是并没有显示对应窗口，会不会是个隐藏广告？</p>

<p><img src="http://static.wooyun.org//drops/20160315/201603151245192512958.png" alt="" /></p>

<p>使用工具强制将窗口显示，效果如下，看起来是一个普通的游戏广告。</p>

<p><img src="http://static.wooyun.org//drops/20160315/201603151245213112768.png" alt="" /></p>

<p>再进一步分析，获取广告链接的服务器地址硬编码在speedup.exe内，然后在内置的浏览器中每隔数分钟获取一次广告url，拉取广告后在内存中显示，由于广告窗口属性为隐藏，用户完全无法察觉广告的存在。</p>

<p><img src="http://static.wooyun.org//drops/20160315/201603151245239928378.png" alt="" /></p>

<p>顺着这条线索，我们不断抓包分析，最终发现广告会访问到一个可疑页：<code>hxxp://www.ip.u****.com.cn/index.html</code>直接访问这个页面，表面上看也是一个普通的游戏flash广告。</p>

<p><img src="http://static.wooyun.org//drops/20160315/20160315124525528978.jpeg" alt="" /></p>

<p>查看页面源码后，其中两处调用引起了我们关注</p>

<p><img src="http://static.wooyun.org//drops/20160315/201603151245269594098.png" alt="" /></p>

<p>（1）<code>hxxp://www.ip.u****com.cn/LSQZA.swf</code></p>

<p>通过反编译，发现LSQZA.swf加了doswf壳</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512452840098108.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20160315/20160315124529974991113.png" alt="" /></p>

<p>从内存dump中获取真正的恶意swf文件</p>

<p><img src="http://static.wooyun.org//drops/20160315/20160315124531702721210.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512453238907138.png" alt="" /></p>

<p>反编译代码分析，发现该木马利用的是CVE-2015-5122漏洞</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512453476184147.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512453568774156.png" alt="" /></p>

<p>漏洞最终加载的Playload的主要功能是下载silence_eq014.exe并执行。</p>

<p>CVE-2015-5122技术细节 <a href="http://www.cvedetails.com/cve/2015-5122">http://www.cvedetails.com/cve/2015-5122</a></p>

<p>（2）<code>hxxp://www.ip.u****.com.cn/GXRP.html</code></p>

<p>GXRP.html的内容是一段转码脚本</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512453711026165.png" alt="" /></p>

<p>解码后可发现该脚本是著名的ie神洞CVE-2014-6332 利用代码。</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512453866539175.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512453986407183.png" alt="" /></p>

<p>漏洞最终加载的Playload功能是下载并执行silence_eq014.exe</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512454158485193.png" alt="" /></p>

<p>值得注意的是，微软发布的<a href="https://technet.microsoft.com/library/security/ms14-064#ID0EUYAE">CVE-2014-6332漏洞</a>修复补丁并不包含xp系统，因此xp系统用户被此漏洞攻击时，如果没有安全软件保护，很容易被攻击成功。CVE-2014-6332技术细节 <a href="http://www.cvedetails.com/cve/2014-6332">http://www.cvedetails.com/cve/2014-6332</a></p>

<p>该广告页同时利用了两个漏洞进行挂马以提高挂马的成功率，两种攻击方式最终目的一致——触发下载木马安装器，下载地址: <code>hxxp://download.xin*****rj.cn/download/silence_eq014.exe</code></p>

<p>地址中“014”替换为“001”到“013”之间任意字符串后链接仍然有效，显然silence_eq病毒传播方式除了广告挂马，还可能存在其它推广方式。</p>

<p>silence_eq系列病毒为了尽可能躲避杀软拦截，采用自动化、高频化生成变种的方式进行免杀。更新频率约10s一次，按现有渠道量统计，24小时变种数量可高达12万之多。</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512454256185203.png" alt="" /></p>

<p>（3）silence_eq木马分析</p>

<p>这是一个常见的下载器木马，主要目的十分简单——从下载列表拉取对应推广软件安装包执行。</p>

<p>分析到下载列表: <code>hxxp://115******30.228:8090/1.txt</code></p>

<p><img src="http://static.wooyun.org//drops/20160315/20160315124543468902111.png" alt="" /></p>

<p>包含多款软件下载地址</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512454543959223.png" alt="" /></p>

<p>直接访问 <code>hxxp://115******30.228:8090</code>，页面title为“统计后台管理”猜测是统计推广软件的下载量。</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512454681413233.png" alt="" /></p>

<p>我们使用“技术手段”破解密码后登陆，3月12日当天17:00感染量显示超过2w。由于可以清空统计，这一感染量可能远低于真实情况。</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512454830079243.png" alt="" /></p>

<h2>２.　攻击方式二（某游戏）：定向劫持特定内容</h2>

<p>找到一个出现问题的游戏玩家，在电脑上抓包和程序监控，最终发现正常访问的<code>http://im****he.gtimg.cn/*****_v1/tvp/js/tvp.player_v2_jq.js</code>竟然被劫持。</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512454970173253.png" alt="" /></p>

<p>劫持的JS代码如下。首先会去下载正常的tvp.player&#95;v2&#95;jq.js。然后最后会拉取 <code>http://im****he.gtimg.cn/*****_v1/tvp/js/tvp.player_v2_jq.js</code></p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512455075730263.png" alt="" /></p>

<p><code>hxxp://home.b*****dn2.com/06/main.js</code>会进一步下载其他JS。</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512455239890273.png" alt="" /></p>

<p>一层层定位到关键的挂马页面：<code>hxxp://www.m****u.cn/1/index001.html</code></p>

<p>最终触发的恶意漏洞文件“LSQZA.swf”是不是很眼熟？与攻击方式1中的恶意swf文件名字完全相同，显然是同一个病毒团伙。</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512455390724283.png" alt="" /></p>

<p>后续触发漏洞的方式与1稍有不同，只利用了CVE-2015-5112 flash漏洞。攻击成功后释放并拉起名为“DeskHomePage&#95;179&#95;1.exe”的下载器病毒。</p>

<p>最终安装大量推广软件，触发广告弹窗骚扰用户。</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512455610760293.png" alt="" /></p>

<p>中招的用户可以使用管家杀毒功能清理掉上述推广软件。</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512455975790303.png" alt="" /></p>

<h2>３.　攻击方式三：访问任意网页，随机插入挂马广告页面</h2>

<p>方式与2基本相同，区别在于攻击方式不是劫持特定数据，而是在网络请求访问数据中随机插入挂马广告页面。任何客户端软件发起的任何网络访问都可能被污染，如果用户使用未打补丁的系统或者存在flash漏洞的软件（如浏览器）则会中招，因此杀伤力极大。此攻击方式已知的最终挂马页面与攻击方式二相同。</p>

<h1>0x02 数据监控</h1>

<hr />

<p>前期攻击主要以“定向劫持某游戏数据”（攻击方式2）为主，受影响为某运营商用户。三月9日开始，挂马集团使用“商业广告挂马”（攻击方式1）加大了对全国各地另一运营商用户的攻击力度。</p>

<p>DeskHomePage木马以河南省受到的影响最大。</p>

<p><img src="http://static.wooyun.org//drops/20160315/20160315124601356933111.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512460297947323.png" alt="" /></p>

<p>silence_eq木马和敲诈者木马针对某运营商用户，受影响用户无区域聚集现象。</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512460436298333.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512460592426343.png" alt="" /></p>

<h1>0x03 总结和建议</h1>

<hr />

<p>此次大规模漏洞攻击涉及到两大运营商和多款知名软件，攻击范围之广在中国互联网历史上极其罕见，其中受影响最深的是河南省用户。截至到3.14日，攻击中涉及的部分下载站仍然活跃，还在不断更新数据。</p>

<p><img src="http://static.wooyun.org//drops/20160315/2016031512460771387353.png" alt="" /></p>

<p>腾讯反病毒实验室认为，这三种攻击方式集中利用了中国互联网各方当前的安全弱点：</p>

<p>（1）运营商在提供互联网数据服务时，首先要确保数据安全性。对自身各节点提供的数据应建立更完善的监控，避免再出现部分地区大规模的网络访问内容被劫持的问题。管家已经主动联系相关运营商并提供更多细节信息，协助运营商定位问题和开发后续防范措施。</p>

<p>（2）正规软件厂商除了确保用户数据安全外，应更重视客户端与服务端之间数据通信安全，如使用https替换易被篡改内容的http协议；及时更新自身存在安全隐患的组件，尤其是经常被攻击者利用的flash组件。早期攻击者更多攻击存在漏洞的flash组件的浏览器，在浏览器厂商重视相关问题主动升级flash版本后，防御相对滞后的客户端软件将成为当前重点攻击目标。</p>

<p>（3）广告联盟公司应加强对旗下发布各类广告的安全监管，尤其是容易被利用的flash广告安全性，防止自身被攻击者利用，变成木马传播平台。</p>

<p>（4）广大用户朋友应注意及时使用安全软件安装系统最新补丁。由于微软已不再支持xp系统漏洞修复，建议xp用户尽早升级使用Win7或者Win10等安全性更高的系统。</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          